#ifndef GUI
#define GUI
#include <gtkmm/window.h>
#include <gtkmm/application.h>
#include <gtkmm/fixed.h>
#include <gtkmm/box.h>
#include <gtkmm/comboboxtext.h>
#include <gtkmm/menubar.h>
#include <gtkmm/treemodel.h>
#include <gtkmm/alignment.h>
#include <gtkmm/entry.h>
#include <gtkmm/label.h>
#include <gtkmm/button.h>
#include <gtkmm/frame.h>
#include <iostream>
#include "cramer.hh"
#include "gui2.hh"
#include "guiAbout.hh"

class Gui: public Gtk::Window{
  Gtk::Fixed m_fixed;
  Gtk::Box m_box1, m_box2, m_box3, m_box4, vbox;
  //Gtk::VBox vbox;
  Gtk::Alignment m_alignment1, m_alignment2, m_alignment3, m_alignment4;
  Gtk::Entry m_entryX1, m_entryX2, m_entryX3, m_entryY1, m_entryY2, m_entryY3, m_entryZ1, m_entryZ2, m_entryZ3, m_entryB1, m_entryB2, m_entryB3;
  Gtk::Frame m_frame1, m_frame2, m_frame3, m_frame4;
  Gtk::Label m_labelX1, m_labelY1, m_labelZ1, m_labelX2, m_labelY2, m_labelZ2, m_labelX3, m_labelY3, m_labelZ3, m_labelB1, m_labelB2, m_labelB3; 
  //Gtk::TreeModel treeModel; 
  Gtk::Button m_button1, m_buttonClose;
  Gtk::ComboBoxText m_comboboxX1, m_comboboxY1, m_comboboxZ1, m_comboboxX2, m_comboboxY2, m_comboboxZ2, m_comboboxX3, m_comboboxY3, m_comboboxZ3, m_comboboxB1, m_comboboxB2, m_comboboxB3;
  Gtk::MenuBar menuBar;
  Gtk::MenuItem menuFile, menuHelp, menuFileQuit, menuHelpAbout;
  Gtk::Menu subMenuFile, subMenuHelp; 

  bool is_number(const std::string& s); 
  void print(std::string);
  void printClose();
  void about(); 
  void aboutClose();
  Gui2* gui2;
  GuiAbout* guiAbout; 
public:
  Gui();
  void set_hierarchy();
  void draw_widgets(); 
  void on_button1(); 
};

#endif
